package Throwable;

/*
* 异常处理，抓抛模型
* 过程一：“抛”，程序正常执行的过程中，一旦出现异常，就会在异常代码处生成一个对应的异常类的对象。
* 并将此对象抛出。
* 一旦抛出对象以后，其后的代码就不再执行。
*
* 过程二：“抓”，可以理解为异常的处理方式，1、try-catch-finally  2、throws
*
*
* try{
*  //可能出现异常的代码
* }catch（异常类型1 变量名1）{
*   //处理异常的方式
* }catch（异常类型2 变量名2）{
*   //处理异常的方式
* }finally{
*   //一定会执行的代码
* }
*
* 说明：
* 1. finally是可选的
* 2. 使用try将可能出现异常的代码包装起来，在执行过程中，一旦出现异常，就会生成一个对应异常的对象，根据此对象的类型
* 就能去catch中进行匹配
* 3. catch中的异常类型如果没有子父关系，当异常类型匹配时，谁声明在上面就执行谁（多个catch只执行其中一个）
* * */
public class try_catch {

    public static void main(String[] args) {
        String a = "123a";
        try {
            int i = Integer.parseInt(a);
            System.out.println("11111");
        }catch (NumberFormatException e){
            System.out.println("数据转换异常"+e.getMessage()); //异常信息提示
            e.printStackTrace(); //输出原来的异常信息
//            return;
        }finally {
            System.out.println("最后");
        }

        System.out.println("6666");
    }
}
